// 导出 
/**
 * commmonjs的导出的本质是暴露module.exports的值
 * module.exports默认值是一个空对象
 * exports 是 module.exports默认空对象的引用
 * 
 * 暴露的两种方式： (不能同时存在)
 * 1.直接改变 module.exports的值 （指定新的模块数据）
 *      只可以写一次，如果写多次，后面的的会覆盖前面的
 * 2.改变默认空对象的属性和方法
 *      可以写多次
 * 
 * 注意：
 *     （1）exports = 5  无效 不能修改模块数据
 *      既没有改变module.exports的值，也没有改变默认模块对象的属性和方法
 *     （2） module.exports = {}
 *      此时已指向一个新的空对象，不再是默认的模块空对象，后面在写exports.a就是无效代码
 *      exports永远指向默认空对象，而不是新的对象。
 * */

// module.exports = 3;

module.exports.a = 4;
module.exports.b = 5;

/* 
    moudule的类似解构 
    const m = {
        exports: {}
    } 
*/